package com.ruoyi.points.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.Objects;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 优惠券页面对象 points_item
 *
 * @author ruoyi
 * @date 2024-08-01
 */
public class PointsItem extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;
    private ArrayList<Object> pointsValueList;

    /** 优惠券名称 */
    @Excel(name = "优惠券名称")
    private String name;

    /** 优惠券面值 */
    @Excel(name = "优惠券面值")
    private String price;

    /** 发送方式(1,2,3,4) */
    @Excel(name = "发送方式(1,2,3,4)")
    private Long sendType;

    /** 优惠券类型 */
    @Excel(name = "优惠券类型")
    private Long pointsType;

    /** 类型的值，通用无值 */
    @Excel(name = "类型的值，通用无值")
    private String pointsValue;

    /** 使用门槛 */
    @Excel(name = "使用门槛")
    private Long sillType;

    /** 门槛的最低消费金额 */
    @Excel(name = "门槛的最低消费金额")
    private String sillValue;

    /** 使用时间 */
    @Excel(name = "使用时间")
    private Long useType;

    /** 天数的值 */
    @Excel(name = "天数的值")
    private String useDayValue;

    /** 领取后的开始时间段 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "领取后的开始时间段", width = 30, dateFormat = "yyyy-MM-dd")
    private Date useTimeStart;

    /** 领取后的结束时间段 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "领取后的结束时间段", width = 30, dateFormat = "yyyy-MM-dd")
    private Date useTimeEnd;

    /** 领取时间是否限时 */
    @Excel(name = "领取时间是否限时")
    private Long getTimeType;

    /** 显示领取的开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "显示领取的开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date getTimeStart;

    /** 限时领取的结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "限时领取的结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date getTimeEnd;

    /** 发布数量(0开启限量，1关闭) */
    @Excel(name = "发布数量(0开启限量，1关闭)")
    private Long hasNumType;

    /** 限量数量 */
    @Excel(name = "限量数量")
    private String hasNumValue;

    /** 用户可以领取的张数 */
    @Excel(name = "用户可以领取的张数")
    private Long canGetNum;

    /** 状态开启关闭 */
    @Excel(name = "状态开启关闭")
    private Long status;

    /** 逻辑删除 */
    @Excel(name = "逻辑删除")
    private Long isdel;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setPrice(String price)
    {
        this.price = price;
    }

    public String getPrice()
    {
        return price;
    }
    public void setSendType(Long sendType)
    {
        this.sendType = sendType;
    }

    public Long getSendType()
    {
        return sendType;
    }
    public void setPointsType(Long pointsType)
    {
        this.pointsType = pointsType;
    }

    public Long getPointsType()
    {
        return pointsType;
    }
    public void setPointsValue(String pointsValue)
    {
        this.pointsValue = pointsValue;
    }

    public String getPointsValue()
    {
        return pointsValue;
    }
    public void setSillType(Long sillType)
    {
        this.sillType = sillType;
    }

    public Long getSillType()
    {
        return sillType;
    }
    public void setSillValue(String sillValue)
    {
        this.sillValue = sillValue;
    }

    public String getSillValue()
    {
        return sillValue;
    }
    public void setUseType(Long useType)
    {
        this.useType = useType;
    }

    public ArrayList<Object> getPointsValueList() {
        return pointsValueList;
    }

    public void setPointsValueList(ArrayList<Object > pointsValueList) {
        this.pointsValueList = pointsValueList;
    }

    public Long getUseType()
    {
        return useType;
    }
    public void setUseDayValue(String useDayValue)
    {
        this.useDayValue = useDayValue;
    }

    public String getUseDayValue()
    {
        return useDayValue;
    }
    public void setUseTimeStart(Date useTimeStart)
    {
        this.useTimeStart = useTimeStart;
    }

    public Date getUseTimeStart()
    {
        return useTimeStart;
    }
    public void setUseTimeEnd(Date useTimeEnd)
    {
        this.useTimeEnd = useTimeEnd;
    }

    public Date getUseTimeEnd()
    {
        return useTimeEnd;
    }
    public void setGetTimeType(Long getTimeType)
    {
        this.getTimeType = getTimeType;
    }

    public Long getGetTimeType()
    {
        return getTimeType;
    }
    public void setGetTimeStart(Date getTimeStart)
    {
        this.getTimeStart = getTimeStart;
    }

    public Date getGetTimeStart()
    {
        return getTimeStart;
    }
    public void setGetTimeEnd(Date getTimeEnd)
    {
        this.getTimeEnd = getTimeEnd;
    }

    public Date getGetTimeEnd()
    {
        return getTimeEnd;
    }
    public void setHasNumType(Long hasNumType)
    {
        this.hasNumType = hasNumType;
    }

    public Long getHasNumType()
    {
        return hasNumType;
    }
    public void setHasNumValue(String hasNumValue)
    {
        this.hasNumValue = hasNumValue;
    }

    public String getHasNumValue()
    {
        return hasNumValue;
    }
    public void setCanGetNum(Long canGetNum)
    {
        this.canGetNum = canGetNum;
    }

    public Long getCanGetNum()
    {
        return canGetNum;
    }
    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }
    public void setIsdel(Long isdel)
    {
        this.isdel = isdel;
    }

    public Long getIsdel()
    {
        return isdel;
    }

    @Override
    public String toString() {
        return "PointsItem{" +
                "id=" + id +
                ", pointsValueList=" + pointsValueList +
                ", name='" + name + '\'' +
                ", price='" + price + '\'' +
                ", sendType=" + sendType +
                ", pointsType=" + pointsType +
                ", pointsValue='" + pointsValue + '\'' +
                ", sillType=" + sillType +
                ", sillValue='" + sillValue + '\'' +
                ", useType=" + useType +
                ", useDayValue='" + useDayValue + '\'' +
                ", useTimeStart=" + useTimeStart +
                ", useTimeEnd=" + useTimeEnd +
                ", getTimeType=" + getTimeType +
                ", getTimeStart=" + getTimeStart +
                ", getTimeEnd=" + getTimeEnd +
                ", hasNumType=" + hasNumType +
                ", hasNumValue='" + hasNumValue + '\'' +
                ", canGetNum=" + canGetNum +
                ", status=" + status +
                ", isdel=" + isdel +
                '}';
    }
}
